From a8e90853c93632996bdba4cd227aa24253a3ef7c Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 3 Sep 2024 12:01:24 +0200 Subject: [PATCH] interface: improve hotplug handling reliability Retry interface setup if the same device is added again Signed-off-by: Felix Fietkau --- interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface.c b/interface.c index eb3bece..c274959 100644 --- a/interface.c +++ b/interface.c @@ -1083,11 +1083,11 @@ interface_add_link(struct interface *iface, struct device *dev, { struct device *mdev = iface->main_dev.dev; - if (mdev == dev) + if (mdev == dev && iface->state == IFS_UP) return 0; if (iface->main_dev.hotplug) - device_remove_user(&iface->main_dev); + interface_set_main_dev(iface, NULL); if (mdev) { if (mdev->hotplug_ops) @@ -1119,7 +1119,7 @@ interface_handle_link(struct interface *iface, const char *name, interface_set_device_config(iface, dev); if (!link_ext) - device_set_present(dev, true); + system_if_check(dev); return interface_add_link(iface, dev, vlan, link_ext); } -- 2.30.2